package com.ymatou.iapi.trading.userquery.parameter.resp;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

import com.google.gson.annotations.SerializedName;

/**
 * 订单信息
 * 
 */
public class OrderInfo {


    /**
     * 主单号
     */
    public long orderGroupId;


    /**
     * 下单后未付款多久自动取消订单
     */
    public BigDecimal autoCancelOrderHours;


    /**
     * 订单id
     */
    public long orderId;


    /**
     * 下单时间
     */
    public Date addTime;


    /**
     * 订单来源平台 PlatformEnum
     */
    public int platform;


    /**
     * 是否扫货订单
     */
    public boolean shangou;


    /**
     * 订单取消原因
     */
    public String cancelReason;


    /**
     * 订单是否已评价(分)
     */
    public boolean evaluated;


    /**
     * 订单相关状态信息
     */
    public StatusInfo status;


    /**
     * 卖家信息
     */
    public SellerInfo seller;


    /**
     * 买家信息
     */
    public OrderConsumerInfo consumer;


    /**
     * 商品信息
     */
    public List<ProductInfo> products;


    /**
     * 收货人信息
     */
    public OrderConsigneeInfo consignee;


    /**
     * 支付信息
     */
    public PaymentInfo payment;


    /**
     * 收货、退货信息
     */
    public TransferInfo transfer;

    /**
     * 能否评价
     */
    public boolean canEvaluate;

    /**
     * 是否预售订单
     */
    public boolean preSaleOrder;

    /**
     * 订单当前状态下的可操作信息. null表示不能进行操作
     */
    public OrderOperationInfo operation;

    public long getOrderGroupId() {
        return orderGroupId;
    }

    public void setOrderGroupId(long orderGroupId) {
        this.orderGroupId = orderGroupId;
    }

    public BigDecimal getAutoCancelOrderHours() {
        return autoCancelOrderHours;
    }

    public void setAutoCancelOrderHours(BigDecimal autoCancelOrderHours) {
        this.autoCancelOrderHours = autoCancelOrderHours;
    }

    public long getOrderId() {
        return orderId;
    }

    public void setOrderId(long orderId) {
        this.orderId = orderId;
    }

    public Date getAddTime() {
        return addTime;
    }

    public void setAddTime(Date addTime) {
        this.addTime = addTime;
    }

    public int getPlatform() {
        return platform;
    }

    public void setPlatform(int platform) {
        this.platform = platform;
    }

    public boolean getShangou() {
        return shangou;
    }

    public void setShangou(boolean shangou) {
        this.shangou = shangou;
    }

    public String getCancelReason() {
        return cancelReason;
    }

    public void setCancelReason(String cancelReason) {
        this.cancelReason = cancelReason;
    }

    public boolean getEvaluated() {
        return evaluated;
    }

    public void setEvaluated(boolean evaluated) {
        this.evaluated = evaluated;
    }

    public StatusInfo getStatus() {
        return status;
    }

    public void setStatus(StatusInfo status) {
        this.status = status;
    }

    public SellerInfo getSeller() {
        return seller;
    }

    public void setSeller(SellerInfo seller) {
        this.seller = seller;
    }

    public OrderConsumerInfo getConsumer() {
        return consumer;
    }

    public void setConsumer(OrderConsumerInfo consumer) {
        this.consumer = consumer;
    }

    public List<ProductInfo> getProducts() {
        return products;
    }

    public void setProducts(List<ProductInfo> products) {
        this.products = products;
    }

    public OrderConsigneeInfo getConsignee() {
        return consignee;
    }

    public void setConsignee(OrderConsigneeInfo consignee) {
        this.consignee = consignee;
    }

    public PaymentInfo getPayment() {
        return payment;
    }

    public void setPayment(PaymentInfo payment) {
        this.payment = payment;
    }

    public TransferInfo getTransfer() {
        return transfer;
    }

    public void setTransfer(TransferInfo transfer) {
        this.transfer = transfer;
    }

    public OrderOperationInfo getOperation() {
        return operation;
    }

    public void setOperation(OrderOperationInfo operation) {
        this.operation = operation;
    }

    public boolean getCanEvaluate() {
        return canEvaluate;
    }

    public void setCanEvaluate(boolean canEvaluate) {
        this.canEvaluate = canEvaluate;
    }

    public boolean getPreSaleOrder() {
        return preSaleOrder;
    }

    public void setPreSaleOrder(boolean preSaleOrder) {
        this.preSaleOrder = preSaleOrder;
    }
}